#ifndef LDPC_ENCODER_HPP
#define LDPC_ENCODER_HPP


#include <NTL/GF2.h>
#include <NTL/mat_GF2.h>
#include <NTL/vec_GF2.h>

NTL_CLIENT

namespace LDPCEncoder{
  void encode(vec_GF2& codeword, const vec_GF2& msg, const mat_GF2& G);
  void generate_random_codeword(vec_GF2& codeword, const mat_GF2& G);
  void compute_G(mat_GF2& G, mat_GF2& H);
  void verify_G(const mat_GF2& G, const mat_GF2& H);
}

#endif //LDPC_ENCODER_HPP
